package com.hades.example.java.refactoring.after.c11.c11_11_replace_inheritance_with_delegation;

import java.util.Vector;

// 用户只要它做四件事：push()、pop()、size() 和 isEmpty()
//public class MyStack<E> extends Vector<E> {
// step 1
//    Vector<E> _vector = this;
//    public void push(E element) {
//        _vector.insertElementAt(element, 0);
//    }
//
//    public E pop() {
//        E result = _vector.firstElement();
//        _vector.removeElementAt(0);
//        return result;
//    }
//}

// step 2
public class MyStack<E> {
    Vector<E> _vector = new Vector<>();

    public void push(E element) {
        _vector.insertElementAt(element, 0);
    }

    public E pop() {
        E result = _vector.firstElement();
        _vector.removeElementAt(0);
        return result;
    }

    public int size() {
        return _vector.size();
    }

    public boolean isEmpty() {
        return _vector.isEmpty();
    }
}


